from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime

class AnalysisRequest(BaseModel):
    prompt: str
    template_name: Optional[str] = "general"

class AnalysisResponse(BaseModel):
    success: bool
    result: Optional[str] = None
    report_url: Optional[str] = None
    message: str
    timestamp: datetime = datetime.now()

class VideoInfo(BaseModel):
    filename: str
    size: int
    duration: Optional[float] = None
    fps: Optional[float] = None
    resolution: Optional[str] = None

class InternVLRequest(BaseModel):
    model: str = "internvl2-pro"
    messages: List[dict]
    stream: bool = False
    max_tokens: int = 2000
    temperature: float = 0.7